головне меню список тем тестування презентації історія створення

 

7.5. Системні пристрої

Крім мікропроцесора і системної пам'яті на системній (материнській) платі розташовуються і інші важливі модулі, що забезпечують працездатність комп'ютера: контролери переривань і прямого доступу, тактовий генератор, системний таймер, буферні мікросхеми, контролер шини і т.д. В перших комп'ютерах сімейства всі ці функції виконували окремі спеціалізовані мікросхеми порівняно низкою ступеня інтеграції. В сучасних комп'ютерах застосовуються надвеликі інтегральні схеми, які, проте, забезпечують повну програмну і апаратну сумісність з попередніми моделями. Ці мікросхеми називаються набором мікросхем або chipset (чипсет). Переваги такого підходу - chipset займає менше місця на платі, менша споживана потужність, значно велика надійність. Комп'ютери, виконані на системній плати з chipset відомих фірм, мають кращу репутацію. В більшість наборів мікросхем входить так званий периферійний контролер, що включає два контролери переривань, два контролери прямого доступу до пам'яті, таймер, годинник реального часу, а також CMOS-пам'ять.

7.5.1. Тактовий генератор

Системний тактовий генератор генерує сигнали синхронізації для роботи мікропроцесора, всіх контролерів і системної шини. Для забезпечення високої стабільності тактових частот і їх незалежності від температури застосовуються кварцові резонатори, тобто кристали кварцу, що мають високостабільну частоту власних коливань. Як правило, до складу системної плати входить декілька кварцових резонаторів, кожний з яких забезпечує свій тактовий сигнал. Тактову частоту процесора можна вибирати шляхом установки перемичок на системній плати. Це дозволяє користувачу модернізувати комп'ютер шляхом заміни процесора на інший, розрахований на більш високу тактову частоту. Іноді вдається примусити процесор працювати на більш високій тактовій частоті, ніж та, на яку він розрахований, але тут потрібно дотримуватися обережності, оскільки підвищення частоти веде не тільки до збільшення споживаної потужності і перегріву мікросхеми, але і до помилок і збоїв в роботі, причому які виявляються тільки в окремих режимах, наприклад, в багатозадачному.
В комп'ютерах на базі процесорів 486 і Pentium застосовується розподіл опорної тактової частоти для синхронізації системної шини і внутрішнє множення частоти в процесорах. Наприклад, в процесорі 486DX2-66 використовується множення на два тактової частоти 33,3 Мгц, а в процесорах сімейства Pentium застосовується множення на 2,5 (при опорній частоті 60 Мгц частота процесора 150 Мгц) або на 3 (при опорній частоті 66,6 Мгц частота процесора 200 Мгц).
В загальному випадку в комп'ютері існують наступні тактові частоти:

  • Host Bus Clock (CLK2IN) - це опорна частота (зовнішня частота шини процесора). Саме з неї можуть виходити інші частоти і саме вона задається перемичками (джамперами);
  • CPU Clock (Core Speed) - це внутрішня частота процесора, на якій працює його обчислювальне ядро. Може співпадати з Host Bus Clock або виходити з неї множенням на 1,5, 2, 2,5, 3, 4. Множення повинне бути передбачено в конструкції процесора.
  • ISA Bus Clock (ATCLK, BBUSCLK) - це тактова частота системної шини ISA (сигнал SYSCLK). За стандартом вона повинна бути близька до 8 Мгц, але в BIOS Setup є можливість вибрати її через коефіцієнт розподілу частоти Host Bus Clock. Іноді комп'ютер залишається працездатним і при частоті шини ISA близько 20 Мгц, але звичайно плата розширення ISA розробляється з розрахунку на 8 Мгц, і при великих частотах вони перестають працювати. Не слід розраховувати, що комп'ютер стане удвічі швидше при подвоєнні цієї частоти. Для каналів прямого доступу до пам'яті на системній плати використовується ще один тактовий сигнал SCLK, частота якого, як правило, складає половину від ISA Bus Clock.
  • PCI Bus Clock - це тактова частота системної шини PCI, яка за стандартом повинна бути 25 - 33,3 Мгц. Її звичайно одержують розподілом частоти Host Bus Clock на потрібний коефіцієнт. В комп'ютерах передбачається можливість її збільшення до 75 або навіть 83 Мгц, але з міркувань надійності роботи рекомендується дотримуватися стандартних значень.
  • VLB Bus Clock - це частота локальної шини VLB, визначувана аналогічно PCI Bus Clock.

7.5.2. Контролер переривань

Контролери радіальних переривань в перших комп'ютерах виконувалися на мікросхемах i8259, кожна з яких мала 8 входів запиту переривань. В IBM PC AT застосовувалося дві такі мікросхеми, внаслідок чого кількість входів запитів переривань збільшилася до 15. Режими роботи контролерів переривань визначаються процесором шляхом запису відповідних управляючих кодів за адресами в просторі пристроїв вводу/виводу.
Про цикли обміну по перериваннях вже мовилося в розділі 2.2.2. Під час приходу запиту переривання на один з входів IRQ і задоволенні цього запиту контролер переривань виробляє вихідний сигнал запиту переривання, що поступає на процесор. У відповідь на це процесор опитує контролер про те, переривання з якою адресою вектора необхідно обслужити. Всього переривань може бути 256 (від 00 до FF). Номер переривання, одержаний від контролера, процесор м на 4 і одержує, таким чином, адресу пам'яті, де зберігається адреса початку програми обробки переривань (вектор переривання). Привласнення кожному з каналів IRQ свого номера процесор здійснює на етапі ініціалізації контролера.
Контролер переривань може виконувати наступний набір операцій:

  • маскування запитів на переривання, тобто тимчасова заборона реакції на них;
  • установка пріоритетів запитів по різних входах, тобто дозвіл конфліктів при одночасному приході декількох запитів на переривання;
  • робота як основний контролер (Master) або підлеглий (Slave).

Для маскування переривань використовується внутрішній регістр контролера, програмно доступний процесору як по запису, так і по читанню. Замаскований може бути кожний запит (по кожній з ліній IRQ), шляхом установки відповідного біта маскування в записуваному в контролер управляючому байті.
Схема пріоритетів переривань може бути задана процесором програмним шляхом. В базовому варіанті всі пріоритети фіксовані (тобто IRQ0 має вищий пріоритет, а IRQ7 - низький). Але у принципі вищий рівень пріоритету задається для будь-якого з входів запитів, можна також встановити циклічне перемикання пріоритетів (останній обслужений запит одержує низький пріоритет), забезпечуючи тим самим всім запитам рівні пріоритети. Якщо під час обробки переривання з меншим рівнем пріоритету приходить більш пріоритетний запит, то процесор переходить на програму обробки більш пріоритетного запиту, а після її виконання повертається до програми обробки менш пріоритетного запиту. Відзначимо, що немасковане переривання NMI має пріоритет вище за будь-яке інше апаратне переривання.
Завершивши виконання програми обробки переривання, процесору необхідно за допомогою спеціальної команди повідомити про це контролер переривань, щоб дозволити йому подальшу роботу, зокрема, знов обробляти той же самий запит.
Контролер 8259 передбачає можливість вибору способу розпізнавання запиту на переривання - по фронту сигналу IRQ і по рівню цього сигналу. В архітектурі комп'ютера типа PC використовується запит по фронту.
При каскадуванні  контролерів основному контролеру треба вказати, до якого з його входів підключений підлеглий контролер, а підлеглому контролеру необхідно вказати, до якого входу основного контролера підключений його вихідний сигнал запиту.

Всі операції початкової настройки контролерів переривань виконує BIOS, і користувачу потрібно вдаватися до програмування цих контролерів тільки при необхідності зміни режимів обслуговування переривань або при написанні власної програми обробки апаратних переривань.

7.5.3. контролер прямого доступу до пам'яті

Контролер прямого доступу до пам'яті має складнішу структуру в порівнянні з контролером переривань, що пов'язане з його складнішими функціями. На час ПДП контролер ПДП стає задатчиком (активним пристроєм) системної шини, виставляючи всі основні сигнали шини самостійно. Проте всі режими роботи контролера ПДП, всі його параметри встановлюються процесором на етапі ініціалізації контролера. Зокрема, процесор визначає тип вирішуваної задачі, задає початкову адресу передаваного або приймається масиву даних, а також розмір цього масиву.
В персональному комп'ютері застосовується два чотирьохканальні контролери ПДП типу i8237, що забезпечують 7 каналів ПДП (один канал задіяний для каскадування контролерів за тим же принципом, що і контролери переривань). Крім власне контролерів ПДП в підсистему ПДП входять також програмно доступні регістр старшого байта адреси і регістри сторінок ПДП.
Про цикли обміну в режимі ПДП вже мовилося в розділі 2.2.3. Одержавши сигнал запиту ПДП по одній з ліній DRQ, контролер формує запит процесору на захоплення шини і, одержавши дозвіл від процесора, повідомляє про надання ПДП пристрою, що запитав прямий доступ, по відповідній лінії DACK. Після цього проводиться цикл ПДП, що пересилає дані з пристрою вводу/виводу в пам'ять або навпаки. При цьому сам контролер ПДП формує тільки 16 молодших розрядів адреси пам'яті, а вісім старших розрядів містяться в регістрі сторінок. Свій власний регістр сторінок відповідає кожному з каналів ПДП.
Передача даних у разі ПДП можлива по одному з наступних режимів:

  • Режим одиночної (поцикловой) передачі. В цьому випадку за час надання ПДП виконується тільки один цикл передачі даних, і для наступної передачі треба знову ж таки запитати ПДП. Проте адреса пам'яті, з якою здійснюється обмін, автоматично міняється після кожного циклу. Цей режим дозволяє процесору вставляти свої цикли обміну після кожного циклу ПДП.
  • Режим передачі блоку (режим блокової передачі). В цьому режимі за один раз передається цілий блок даних певної довжини (до 64 Кбайт). Режим забезпечує більш високу швидкість передачі в порівнянні з режимом одиночної передачі, але може на довгий час захопити системну шину, не допускаючи до її управління процесор.
  • Режим передачі на вимогу. Цей режим дозволяє продовжувати ПДП до тих пір, поки пристрій, що запитав ПДП, не вичерпає весь об'єм даних.
  • Каскадний режим дозволяє об'єднувати контролери для збільшення кількості каналів ПДП.

У принципі, можливий режим передачі в режимі ПДП з пам'яті в пам'ять, але в комп'ютері він не використовується.
Як і у разі контролера переривань, можливі дві схеми пріоритетів каналів ПДП, вибирані програмно, - фіксований і циклічний. Початкова схема - фіксовані пріоритети, причому нульовий канал має максимальний пріоритет, а сьомий - мінімальний. Під час обслуговування будь-якого запиту ПДП решта запитів не може втрутитися, але після завершення обслуговування даного запиту обслуговуватиметься запит з найбільшим пріоритетом. Як і у разі контролера переривань, можливе програмне маскування кожного каналу ПДП.
Перед початком роботи кожному з каналів контролера процесор повинен вказати режим, в якому він працюватиме, базову адресу пам'яті, з якої почнеться обмін, кількість передаваних байтів або слів, напрям запису, в пам'ять або читання з пам'яті (від старших адрес до молодших або навпаки). Можливий режим автоинициализации, при якому після закінчення пересилки всього масиву даних контролер автоматично відновлює всі параметри, і для цього не потрібне втручання процесора. Передбачена також можливість програмного запиту ПДП, обслуговуваного так само, як і апаратний запит.

7.5.4. Системний таймер і годинник реального часу

Як системний таймер комп'ютера використовується мікросхема трьохканального 16-розрядного таймера i8254 або її аналог. Таймер призначений для отримання програмно керованих тимчасових затримок і генерації сигналів заданої частоти. Таймер дозволяє підвищити ефективність програмування процесів управління і синхронізації зовнішніх пристроїв, особливо в реальному часі.
Таймер містить три незалежні канали (0, 1 і 2), кожний з яких може бути, у принципі, запрограмований на роботу в одному з шести режимів рахунку:

  • переривання термінального рахунку;
  • програмований генератор одиночного імпульсу;
  • генератор імпульсів заданої частоти;
  • генератор прямокутних імпульсів типу «меандр»;
  • програмно формований строб;
  • апаратно формований строб.

На кожний канал можуть подаватися вхідні синхросигнали. З кожного каналу можна одержувати сигнал з частотою, рівній вхідній частоті, діленій на довільне 16-розрядне число. В комп'ютері на всі входи поступають синхросигнали частотою 1,19 Мгц. Всі канали таймера в комп'ютері мають спеціальне призначення, тому особливої свободи у виборі режиму роботи або перепризначенні функцій у користувача немає.
Вихід каналу 0 пов'язаний з сигналом запиту переривання IRQ0 і забезпечує переривання для лічильника реального часу (використовується режим роботи 3). Користувачу не рекомендується перепрограмувати цей канал. При старті комп'ютера канал програмується так, щоб видавати імпульси приблизно 18,2 рази в секунду. По цьому перериванню програмно збільшується стан лічильника реального часу. Користувач може читати стан даного лічильника із спеціально виділеного елемента пам'яті і застосовувати його для затримок в своїх програмах.
Вихід каналу 1 генерує сигнал запиту регенерації динамічної пам'яті (режим роботи 2). Використовування цього каналу не за призначенням може привести до втрати вмісту оперативної пам'яті.
Вихід каналу 2 генерує тональний сигнал для вбудованого динаміка комп'ютера (режим роботи 3). Проте дозвіл цього тонального сигналу проводиться установкою виділених розрядів (0 і 1) програмно доступного паралельного порту контролера периферійних пристроїв. Один розряд (0) дозволяє роботу каналу, інший розряд (1) пропускає вихідний сигнал на динамік.
Таким чином, користувач комп'ютера може задіювати тільки канал 2. Частіше всього його застосовують для генерації звуків заданої частоти і тривалості. Крім того, вихідний сигнал даного каналу програмно доступний по читанню з одного з розрядів паралельного порту. Це дозволяє, запрограмувавши таймер відповідним чином, витримувати потрібні тимчасові інтервали. Для цього слід програмно дозволити генерацію (при відключеному динаміку), а потім програмно опитувати вихідний сигнал таймера і ухвалювати рішення по зміні його рівня.
Підсистема годинника реального часу в перших комп'ютерах виконувалася на мікросхемі контролера MC146818 фірми Motorola. Цей контролер містить 64 байти СMOS-пам'яті, з яких перші 14 байт використовуються для годинника реального часу, а інші 50 байт бережуть інформацію про конфігурацію системи.
Для вхідного тактового сигналу контролера застосовується спеціальний «годинний» кварцовий генератор з частотою 32 768 кГц, що дозволяє за допомогою розподілу частоти одержати імпульси з частотою 1 Гц. контролер рахує секунди, хвилини, години, дні тижня, місяці і роки. Причому працює він навіть при відключенні живлення комп'ютера, підживляючись від батареї або акумулятора. Це дозволяє зберігати інформацію про поточний час постійно.

Крім лічильника поточного часу, контролер має в своєму складі будильник. Будильник може формувати переривання (IRQ8) з програмно заданою періодичністю. Стани всіх лічильників (секунд, хвилин, годинника і т.д.) програмно доступні як по читанню, так і по запису, що дозволяє встановлювати потрібний час і стежити за ним.

 

 

попередня тема наступна тема